package ch08 {
	/**
	 * 图形数据
	 * @author jianping.shenjp
	 */
	import __AS3__.vec.Vector;
	import flash.display.GraphicsGradientFill;
	import flash.display.GraphicsPath;
	import flash.display.GraphicsPathCommand;
	import flash.display.GraphicsSolidFill;
	import flash.display.GraphicsStroke;
	import flash.display.IGraphicsData;
	import flash.display.Sprite;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.geom.Matrix;

	[SWF(backgroundColor=0xffffff)]
	public class GraphicsDataDemo1 extends Sprite {
		public function GraphicsDataDemo1(){
			stage.align = StageAlign.TOP_LEFT;
			stage.scaleMode = StageScaleMode.NO_SCALE;
			var stroke:GraphicsStroke = new GraphicsStroke(5);
			stroke.fill = new GraphicsSolidFill(0xff0000);

			var myFill:GraphicsGradientFill = new GraphicsGradientFill();
			myFill.colors = [0xEEFFEE, 0x0000FF];
			myFill.matrix = new Matrix();
			myFill.matrix.createGradientBox(400, 400, 0);

			var commands:Vector.<int> = new Vector.<int>();
			commands.push(GraphicsPathCommand.MOVE_TO);
			commands.push(GraphicsPathCommand.LINE_TO);
			commands.push(GraphicsPathCommand.LINE_TO);
			var data:Vector.<Number> = new Vector.<Number>();
			data.push(100, 100);
			data.push(200, 200);
			data.push(200, 300);
			var path:GraphicsPath = new GraphicsPath(commands, data);

			var graphicsData:Vector.<IGraphicsData> = new Vector.<IGraphicsData>();
			graphicsData.push(stroke, myFill, path);

			/**
			   drawGraphicsData () 方法
			   public function drawGraphicsData(graphicsData:Vector.<IGraphicsData>):void

			   提交一系列 IGraphicsData 实例来进行绘图。此方法接受一个包含对象（包括路径、填充和笔触）的矢量，这些对象实现 IGraphicsData 接口。包含 IGraphicsData 实例的矢量可以引用形状的一部分，或引用一组完整定义的复杂数据以呈现完整的形状。
			   图形路径可以包含其他图形路径。如果 graphicsData 矢量包括路径，则在此操作期间将呈现该路径及其所有子路径。

			   参数  graphicsData:Vector.<IGraphicsData> — 一个包含图形对象的矢量，其中的每个对象都必须实现 IGraphicsData 接口。
			 */
			graphics.drawGraphicsData(graphicsData);
		}
	}
}